/* 
处理登录JWT
*/
'use strict';

const Service = require('egg').Service;

class CustjwtSerService extends Service {
  async login(dept) {
    let result = await this.app.mysql.select('dept',{
      where:{deptno:dept.deptno,dname:dept.dname}
    });
    let token = '';
    if(result){
      token = this.app.jwt.sign({
        dname: result[0].DNAME,
        role: 'admin'
      },this.config.jwt.secret,{expiresIn: this.config.jwt.exp});
      // expiresIn : 该属性可以设置秒的时间单位 如 赋值 60 表示60秒
      
    }
    return {result, token};
  }

  async verifytoken(token){
    let decode = this.app.jwt.verify(token,this.config.jwt.secret);

    let iat = decode.iat;
    let exp = decode.exp;
console.log(decode);
    // js 中的date 时间长度为13 位
    console.log('iat',new Date(iat*1000).toString() );
    console.log('exp',new Date(exp*1000).toString() );

    return decode;
  }

  async localverifytoken(user){
    console.log(user);
  }

  // 验证token是否过期
  async vreifyTokenExp(exp){
    // 小于零 表示未过期
    return new Date().getTime() - exp*1000 < 0 ;
  }
}

module.exports = CustjwtSerService;
